package cn.biplam.back.sql.ddl;

import java.io.Serializable;
import java.util.ArrayList;

import cn.biplam.common.wrapper.ErrorMessage;

/**
 * SQL DDL 语义模型 索引
 * @author 	WangSong
 * @version 1.0
 */
public class Index implements Serializable {
	
	private static final long serialVersionUID = 7878014878520223007L;
	/**索引名称*/
	private String sIndexName;
	/**索引类型*/
	private String sIndexType;
	/**索引中的列序列号*/
	private String sIndexOrdinalPosition;
	/**列名称*/
	private ArrayList<String> aIndexColumns;
	/**索引排序方式*/
	private String sIndexAscOrDesc;
	
	/**
	 * 构造方法
	 * @param sIndexName			索引名称
	 * @param sIndexColumnName		索引字段名称
	 * @param sIndexType			索引类型
	 * @param sIndexOrdinalPosition	索引列序号
	 * @param sIndexAscOrDesc		索引排序方式
	 */
	public Index(String sIndexName,String sIndexColumnName,String sIndexType,
				String sIndexOrdinalPosition,String sIndexAscOrDesc){	
		this.sIndexName = sIndexName;
		this.aIndexColumns = new ArrayList<String>();
		this.sIndexType = sIndexName;
		this.sIndexOrdinalPosition = sIndexOrdinalPosition;
		this.sIndexAscOrDesc = sIndexAscOrDesc;
		this.aIndexColumns.add(sIndexColumnName);
	}
	
	public String getPhysicalName() {
		return this.sIndexName;
	}

	public void put(Structure structure) throws ErrorMessage {
		throw new ErrorMessage("此方法已停用!");
	}

	public void setPhysicalName(String physicalName) {
		this.sIndexName = physicalName;	
	}

	/**
	 * 添加索引字段
	 * @param sColumnName 字段名
	 */
	public void put(String sColumnName){
		this.aIndexColumns.add(sColumnName);
	}
	
	/**
	 * 返回索引名称
	 * @return 索引名称
	 */
	public String getIndexName() {
		return sIndexName;
	}

	/**
	 * 返回索引类型
	 * @return 索引类型
	 */
	public String getIndexType() {
		return sIndexType;
	}

	/**
	 * 返回索引中的列序列号
	 * @return 索引中的列序列号
	 */
	public String getIndexOrdinalPosition() {
		return sIndexOrdinalPosition;
	}

	/**
	 * 返回索引列排序序列
	 * @return 索引列排序序列
	 */
	public String getIndexAscOrDesc() {
		return sIndexAscOrDesc;
	}

	/**
	 * 返回索引列
	 * @return
	 */
	public ArrayList<String> getAIndexColumns() {
		return aIndexColumns;
	}

	
}
